package com.hyzx.qbasic.common.util;

import com.alibaba.fastjson.JSON;
import org.apache.commons.lang3.StringUtils;

import java.util.Map;

/**
 * Created by 黄江华 on 2017/9/21
 */

public class JsonUtils {
    /**
     * Bean对象转JSON
     */
    public static String beanToJson(Object object, String dateFormatString) {
        if (object != null) {
            if (StringUtils.isEmpty(dateFormatString)) {
                return JSON.toJSONString(object);
            }

            return JSON.toJSONStringWithDateFormat(object, dateFormatString);
        } else {
            return null;
        }
    }

    /**
     * Bean对象转JSON
     */
    public static String beanToJson(Object object) {
        if (object != null) {
            return JSON.toJSONString(object);
        } else {
            return null;
        }
    }

    /**
     * String转JSON字符串
     */
    public static String stringToJson(String key, String value) {
        if (StringUtils.isEmpty(key)) {
            return null;
        }

        if (StringUtils.isEmpty(value)) {
            return String.format("{\"%s\":null}", key);
        }

        return String.format("{\"%s\":\"%s\"}", key, value);
    }

    /**
     * 将json字符串转换成对象
     */
    public static Object jsonToBean(String json, Class clazz) {
        if (StringUtils.isEmpty(json) || clazz == null) {
            return null;
        }

        return JSON.parseObject(json, clazz);
    }

    /**
     * json字符串转map
     */
    public static Map<String, Object> jsonToMap(String json) {
        if (StringUtils.isEmpty(json)) {
            return null;
        }

        return JSON.parseObject(json, Map.class);
    }
}
